package org.wekit.engine.pvm.runtime;

import org.wekit.engine.pvm.process.Scope;

public abstract class AbstractEventAtomicOperation implements AtomicOperation {

	/**
	 * 判断是否是同步流程
	 * @param execution
	 * @return
	 */
	public boolean isAsync(InterpretableExecution execution)
	{
		return false;
	}

	@Override
	public void execute(InterpretableExecution execution) {
	
		
	}
	
	/**
	 * 获取执行对象
	 * @param execution
	 * @return
	 */
	protected abstract Scope getScope(InterpretableExecution execution);
	
	/**
	 * 获取事件名称
	 * @return
	 */
	protected abstract String getEventName();
	
	/**
	 * 事件结束事件通知
	 * @param execution
	 */
	protected abstract void eventNotificationsCompleted(InterpretableExecution execution);
}
